package com.zzyl.nursing.service.impl;

import java.time.LocalDateTime;
import java.util.List;

import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON;
import com.zzyl.common.ai.AIModelInvoker;
import com.zzyl.common.core.redis.RedisCache;
import com.zzyl.common.utils.DateUtils;
import com.zzyl.common.utils.IDCardUtils;
import com.zzyl.nursing.dto.HealthAssessmentDto;
import com.zzyl.nursing.vo.HealthReportVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zzyl.nursing.mapper.HealthAssessmentMapper;
import com.zzyl.nursing.domain.HealthAssessment;
import com.zzyl.nursing.service.IHealthAssessmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.Arrays;

/**
 * 健康评估Service业务层处理
 * 
 * @author laoYe
 * @date 2024-11-14
 */
@Service
public class HealthAssessmentServiceImpl extends ServiceImpl<HealthAssessmentMapper, HealthAssessment> implements IHealthAssessmentService
{
    @Autowired
    private HealthAssessmentMapper healthAssessmentMapper;

    @Autowired
    private RedisCache redisCache;

    @Autowired
    private AIModelInvoker aiModelInvoker;

    private static final String HEALTH_PROMPT="请以一个专业医生的视角来分析这份体检报告，报告中包含了一些异常数据，我需要您对这些数据进行解读，并给出相应的健康建议。\n" +
        "体检内容如下：\n" +
        "{} \n" +
        "\n" +
        "要求：\n" +
        "1. 提取体检报告中的“总检日期”；\n" +
        "2. 通过临床医学、疾病风险评估模型和数据智能分析，给该用户的风险等级和健康指数给出结果。风险等级分为：健康、提示、风险、危险、严重危险。健康指数范围为0至100分；\n" +
        "3. 根据用户身体各项指标数据，详细说明该用户各项风险等级的占比是多少，最多保留两位小数。结论格式：该用户健康占比20.00%，提示占比20.00%，风险占比20%，危险占比20%，严重危险占比20%；\n" +
        "4. 对于体检报告中的异常数据，请列出（异常数据的结论、体检项目名称、检查结果、参考值、单位、异常解读、建议）这8字段。解读异常数据，解决这些数据可能代表的健康问题或风险。分析可能的原因，包括但不限于生活习惯、饮食习惯、遗传因素等。基于这些异常数据和可能的原因，请给出具体的健康建议，包括饮食调整、运动建议、生活方式改变以及是否需要进一步检查或治疗等。\n" +
        "结论格式：异常数据的结论：肥胖，体检项目名称：体重指数BMI，检查结果：29.2，参考值>24，单位：-。异常解读：体重超标包括超重与肥胖。体重指数（BMI）=体重（kg）/身⾼（m）的平⽅，BMI≥24为超重，BMI≥28为肥胖；男性腰围≥90cm和⼥性腰围≥85cm为腹型肥胖。体重超标是⼀种由多因素（如遗传、进⻝油脂较多、运动少、疾病等）引起的慢性代谢性疾病，尤其是肥胖，已经被世界卫⽣组织列为导致疾病负担的⼗⼤危险因素之⼀。AI建议：采取综合措施预防和控制体重，积极改变⽣活⽅式，宜低脂、低糖、⾼纤维素膳⻝，多⻝果蔬及菌藻类⻝物，增加有氧运动。若有相关疾病（如⾎脂异常、⾼⾎压、糖尿病等）应积极治疗。\n" +
        "5. 根据这个体检报告的内容，分别给人体的8大系统打分，每项满分为100分，8大系统分别为：呼吸系统、消化系统、内分泌系统、免疫系统、循环系统、泌尿系统、运动系统、感官系统\n" +
        "6. 给体检报告做一个总结，总结格式：体检报告中尿蛋⽩、癌胚抗原、⾎沉、空腹⾎糖、总胆固醇、⽢油三酯、低密度脂蛋⽩胆固醇、⾎清载脂蛋⽩B、动脉硬化指数、⽩细胞、平均红细胞体积、平均⾎红蛋⽩共12项指标提示异常，尿液常规共1项指标处于临界值，⾎脂、⾎液常规、尿液常规、糖类抗原、⾎清酶类等共43项指标提示正常，综合这些临床指标和数据分析：肾脏、肝胆、⼼脑⾎管存在隐患，其中⼼脑⾎管有“⾼危”⻛险；肾脏部位有“中危”⻛险；肝胆部位有“低危”⻛险。\n" +
        "\n" +
        "输出要求：\n" +
        "最后，将以上结果输出为JSON格式，不要包含其他的文字说明，所有的返回结果都是json，详细格式如下：\n" +
        "\n" +
        "{\n" +
        "  \"totalCheckDate\": \"YYYY-MM-DD\",\n" +
        "  \"healthAssessment\": {\n" +
        "    \"riskLevel\": \"healthy/caution/risk/danger/severeDanger\",\n" +
        "    \"healthIndex\": XX.XX\n" +
        "  },\n" +
        "  \"riskDistribution\": {\n" +
        "    \"healthy\": XX.XX,\n" +
        "    \"caution\": XX.XX,\n" +
        "    \"risk\": XX.XX,\n" +
        "    \"danger\": XX.XX,\n" +
        "    \"severeDanger\": XX.XX\n" +
        "  },\n" +
        "  \"abnormalData\": [\n" +
        "    {\n" +
        "      \"conclusion\": \"异常数据的结论\",\n" +
        "      \"examinationItem\": \"体检项目名称\",\n" +
        "      \"result\": \"检查结果\",\n" +
        "      \"referenceValue\": \"参考值\",\n" +
        "      \"unit\": \"单位\",\n" +
        "      \"interpret\":\"对于异常的结论进一步详细的说明\",\n" +
        "      \"advice\":\"针对于这一项的异常，给出一些健康的建议\"\n" +
        "    }\n" +
        "  ],\n" +
        "  \"systemScore\": {\n" +
        "    \"breathingSystem\": XX,\n" +
        "    \"digestiveSystem\": XX,\n" +
        "    \"endocrineSystem\": XX,\n" +
        "    \"immuneSystem\": XX,\n" +
        "    \"circulatorySystem\": XX,\n" +
        "    \"urinarySystem\": XX,\n" +
        "    \"motionSystem\": XX,\n" +
        "    \"senseSystem\": XX\n" +
        "  },\n" +
        "  \"summarize\": \"体检报告的总结\"\n" +
        "}";

    /**
     * 查询健康评估
     * 
     * @param id 健康评估主键
     * @return 健康评估
     */
    @Override
    public HealthAssessment selectHealthAssessmentById(Long id)
    {
        return getById(id);
    }

    /**
     * 查询健康评估列表
     * 
     * @param healthAssessment 健康评估
     * @return 健康评估
     */
    @Override
    public List<HealthAssessment> selectHealthAssessmentList(HealthAssessment healthAssessment)
    {
        return healthAssessmentMapper.selectHealthAssessmentList(healthAssessment);
    }

    /**
     * 新增健康评估
     * 
     * @param healthAssessmentDto 健康评估
     * @return 结果
     */
    @Override
    public Long insertHealthAssessment(HealthAssessmentDto healthAssessmentDto)
    {
        //1. 设计Prompt.
        //1.1 获取redis中存放的体检报告内容
        // redisCache.setCacheMapValue("healthReport", idCardNo, content);
        String pdfContent = redisCache.getCacheMapValue("healthReport", healthAssessmentDto.getIdCard());
        String prompt = StrUtil.format(HEALTH_PROMPT, pdfContent);
        //2. 调用AI模型，获取AI模型返回的结果
        String result = aiModelInvoker.qianfanInvoker(prompt);
        // 解析json数据
        HealthReportVo reportVo = JSONUtil.toBean(result, HealthReportVo.class);
        //3. 保存到数据中，返回新增id
        return insertHealthReport(reportVo, healthAssessmentDto);
    }

    /**
     * 插入健康报告
     *
     * @param healthReportVo
     * @return
     */
    private Long insertHealthReport(HealthReportVo healthReportVo, HealthAssessmentDto healthAssessmentDto) {

        HealthAssessment healthAssessment = new HealthAssessment();
        // 总检日期
        healthAssessment.setTotalCheckDate(healthReportVo.getTotalCheckDate());
        healthAssessment.setElderName(healthAssessmentDto.getElderName());
        String idCard = healthAssessmentDto.getIdCard();
        healthAssessment.setIdCard(idCard);
        healthAssessment.setBirthDate(IDCardUtils.getBirthDateByIdCard(idCard));
        healthAssessment.setAge(IDCardUtils.getAgeByIdCard(idCard));
        healthAssessment.setGender(IDCardUtils.getGenderFromIdCard(idCard));
        double healthScore = healthReportVo.getHealthAssessment().getHealthIndex();
        healthAssessment.setHealthScore(String.valueOf(healthScore));
        healthAssessment.setRiskLevel(healthReportVo.getHealthAssessment().getRiskLevel());
        // 是否建议入住
        healthAssessment.setSuggestionForAdmission(getSuggestionForAdmission(healthScore));
        healthAssessment.setNursingLevelName(getNursingLevelName(healthScore));
        healthAssessment.setAdmissionStatus(1);
        healthAssessment.setTotalCheckDate(healthReportVo.getTotalCheckDate());
        healthAssessment.setPhysicalExamInstitution(healthAssessmentDto.getPhysicalExamInstitution());
        healthAssessment.setPhysicalReportUrl(healthAssessmentDto.getPhysicalReportUrl());
        healthAssessment.setAssessmentTime(LocalDateTime.now());
        healthAssessment.setReportSummary(healthReportVo.getSummarize());
        healthAssessment.setDiseaseRisk(JSONUtil.toJsonStr(healthReportVo.getRiskDistribution()));
        healthAssessment.setAbnormalAnalysis(JSONUtil.toJsonStr(healthReportVo.getAbnormalData()));
        healthAssessment.setSystemScore(JSONUtil.toJsonStr(healthReportVo.getSystemScore()));
        save(healthAssessment);
        return healthAssessment.getId();
    }

    /**
     * 计算护理等级
     *
     * @param healthScore
     * @return
     */
    private String getNursingLevelName(double healthScore) {
        // 处理边界
        if (healthScore < 0 || healthScore > 100) {
            throw new IllegalArgumentException("健康评分必须在0到100之间");
        }

        if(healthScore >= 60 && healthScore < 70) {
            return "三级护理等级";
        }else if (healthScore >= 70 && healthScore < 80) {
            return "二级护理等级";
        }else if (healthScore >= 80 && healthScore < 90) {
            return "一级护理等级";
        }else if (healthScore >= 90) {
            return "特级护理等级";
        }
        return "无";

    }

    /**
     * 是否建议入住
     *
     * @param healthScore
     * @return
     */
    private Integer getSuggestionForAdmission(double healthScore) {
        if (healthScore >= 60) {
            return 0;
        }
        return 1;

    }

    public static void main(String[] args) {
        // %s字符串的占位符，%d数字的占位符
       /* String str = "你好，我叫%s,今年%d岁了!";
        System.out.println(String.format(str, "张三", 18));*/

        String pdf = "\" 第 1 页 共 7 页 \\r\\n中州健康体检中心 \\r\\n \\r\\n体 \\r\\n检 \\r\\n报 \\r\\n告 \\r\\n \\r\\n体检编号：  188888888    \\r\\n姓    名：   刘爱国      \\r\\n性    别：     男        \\r\\n年    龄：    69 岁      \\r\\n单    位：      -        \\r\\n部门工号：      -        \\r\\n总检日期： 2023.10.10      \\r\\n \\r\\n 第 2 页 共 7 页 \\r\\n内科 \\r\\n项目名称 检查结果 \\r\\n心率                                          92 次/分 \\r\\n心律 齐，偶发早搏 \\r\\n心音 未见杂音 \\r\\n肺脏 未见异常 \\r\\n腹 平软，未见压痛发跳痛 \\r\\n肝触诊 未见异常 \\r\\n脾触诊 肋下未及 \\r\\n胆囊触诊 未见异常 \\r\\n肾触诊 未见异常 \\r\\n神经反射 未见异常 \\r\\n肠鸣音 未见异常 \\r\\n其它 皮肤弹性差，四肢末梢凉 \\r\\n小结：心率 92次/分，偶发早搏，余心肺腹查体未见异常。皮肤弹性差，四肢末梢凉，提示可能的循环问\\r\\n题。建议心电图检查及血管功能评估。 \\r\\n小结医生：史芬丽 \\r\\n小结日期：2023.10.10 \\r\\n外科 \\r\\n项目名称 检查结果 \\r\\n头面部 正常 \\r\\n外周血管 正常 \\r\\n皮肤 正常 \\r\\n四肢 活动正常 \\r\\n关节 活动良好 \\r\\n脊柱 无畸形 \\r\\n甲状腺 无肿大 \\r\\n浅表淋巴结 无肿大 \\r\\n乳房 正常 \\r\\n生殖器 正常 \\r\\n肛门直肠 正常 \\r\\n疝气 正常 \\r\\n其他 正常 \\r\\n小结：未见异常。 \\r\\n小结医生：张建设 \\r\\n小结日期：2023.10.10 \\r\\n眼科 \\r\\n项目名称 检查结果 \\r\\n其它 无明显异常 \\r\\n眼睑 老年性眼袋，未见炎症 \\r\\n角膜 轻度老年环 \\r\\n结膜 轻微充血 \\r\\n视力左 0.3/ \\r\\n视力右 0.4/ \\r\\n色弱 无 \\r\\n色盲 无 \\r\\n小结：患者存在老年性眼袋、轻度角膜老年环及结膜轻微充血。视力下降，左眼 0.3，右眼 0.4，符合老视\\r\\n特征。建议定期复查，考虑配戴老花镜。 \\r\\n \\r\\n 第 3 页 共 7 页 \\r\\n小结医生：吕婷婷 \\r\\n小结日期：2023.10.10 \\r\\n \\r\\n耳鼻喉科 \\r\\n项目名称 检查结果 \\r\\n听力左 轻度下降 \\r\\n听力右 正常 \\r\\n鼻中隔 轻度弯曲 \\r\\n鼻道 未见异常 \\r\\n鼻咽部 未见异常 \\r\\n口咽部 轻微充血 \\r\\n其它 正常 \\r\\n小结：左耳听力轻度下降，鼻中隔轻度弯曲，口咽部轻微充血。建议耳鼻喉科进一步评估及定期复查。 \\r\\n小结医生：曲微微 \\r\\n小结日期：2023.10.10 \\r\\n眼科特诊 \\r\\n项目名称 检查结果 \\r\\n眼科特诊 未见异常 \\r\\n小结：未见异常。 \\r\\n小结医生：张海明 \\r\\n小结日期：2023.10.10 \\r\\n口腔科 \\r\\n项目名称 检查结果 \\r\\n口腔粘膜 轻微炎症 \\r\\n唇 干燥脱屑 \\r\\n牙齿 部分缺失，余牙石较多 \\r\\n舌 正常 \\r\\n腮腺 正常 \\r\\n牙周 牙周炎，牙龈退缩 \\r\\n鄂 正常 \\r\\n颌下腺 正常 \\r\\n颞下颌关节 活动时轻微弹响 \\r\\n小结：口腔粘膜轻微炎症，唇部干燥脱屑，牙齿部分缺失伴有较多牙石，牙周炎及牙龈退缩。颞下颌关节\\r\\n活动时轻微弹响。建议口腔科进一步检查和治疗。 \\r\\n小结医生：孙尚韩 \\r\\n小结日期：2023.10.10 \\r\\n一般科室 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n身高 170cm CM   \\r\\n体重 66.1kg KG   \\r\\n收缩压 128 mmHg < 140  \\r\\n舒张压 85 mmHg < 90  \\r\\n腰围 76/ cm 60-90  \\r\\n小结：未见异常。 \\r\\n小结医生：李金铭 \\r\\n小结日期：2023.10.10 \\r\\n血常规 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n \\r\\n 第 4 页 共 7 页 \\r\\n红细胞计数 5.3 10E12/L 4-5.5  \\r\\n红细胞压积 47 L/L 42-49  \\r\\n红细胞平均体积 88 f1 82-95  \\r\\n血常规 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n红细胞平均血红蛋白 31 pg 27-33  \\r\\n平均血红蛋白浓度 350 g/L 320-360  \\r\\n血小板计数 150 10E9/L 100-300  \\r\\n血小板平均体积 7 f1 6-14  \\r\\n血小板压积 0.155 L/F 0.108-0.282  \\r\\n血小板体积分布宽度 16 % 15-17  \\r\\n血红蛋白 150 g/l 120-160  \\r\\n白细胞计数 9 10E9/L 4-10  \\r\\n淋巴细胞绝对值 3.8 10E9/L 0.8-4  \\r\\n中性粒细胞绝对值 6 10E9/L 2-7  \\r\\n单核细胞绝对值 0.78 10E9/L 0.1-0.9  \\r\\n淋巴细胞相对百分比 38 % 20-40  \\r\\n粒细胞相对百分比 70 % 50-75  \\r\\n单核细胞相对百分比 8.7 % 3-9  \\r\\n红细胞体积分布宽度 14.2 % 10.6-15  \\r\\n血沉 3  0-15  \\r\\n小结：未见明显异常。 \\r\\n小结医生：武招娣 \\r\\n小结日期：2023.10.10 \\r\\n尿常规 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n尿蛋白（PRO） 阴性    \\r\\n尿糖（GLU） 阴性    \\r\\n尿胆红素（BLL） 阴性    \\r\\n尿胆原（URO） 3.2 umol/L   \\r\\n尿潜血（BLO） 阴性    \\r\\n尿酮体（KET） 阴性    \\r\\n亚硝酸盐（NIT） 阴性    \\r\\n尿白细胞（LEU） 阴性    \\r\\n尿比重（）   1-1.03  \\r\\n尿酸碱值 未见  4.5-8  \\r\\n镜检红细胞 未见  0-3  \\r\\n镜检白细胞 未见  0-5  \\r\\n上皮细胞 未见    \\r\\n管型 未见    \\r\\n结晶 未见    \\r\\n粘液丝 未见    \\r\\n小结：未见明显异常。 \\r\\n小结医生：韩美子 \\r\\n小结日期：2023.10.10 \\r\\n生化 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n \\r\\n 第 5 页 共 7 页 \\r\\n前白蛋白 380  180-420  \\r\\n总胆红素 21 umol/L 5-22  \\r\\n谷草转氨酶 37 U/L 5-40  \\r\\n谷丙转氨酶 40 U/L 0-55  \\r\\n生化 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\n总蛋白 63 g/L 62-82  \\r\\n白蛋白 38 U/L 35-55  \\r\\n球蛋白 28 U/L 20-34  \\r\\n白球比 1.9 % 1.5-2.5  \\r\\n乳酸脱氢酶 213 u/l 60-243  \\r\\n碱性磷酸酶 142 u/l 40-150  \\r\\n谷氨酶转肽酶 63 U/L 0-64  \\r\\n直接胆红素 3.8 umol/L 1.7-6.8  \\r\\n间接胆红素 13.8 umol/L 3.3-15.2  \\r\\n肌酐 128 mmol/L 53-136  \\r\\n尿素氮 5.9 mmol/L 2.3-7.2  \\r\\n尿酸 389 umol/L 155-428  \\r\\n空腹血糖 6.1 mmol/L 3.9-6.1  \\r\\n总胆固醇 5.6 mmol/L 2.3-5.7  \\r\\n甘油三酯 1.7 mmol/L 0.5-1.7  \\r\\n低密度脂蛋白 3.0 mmol/L 2.1-3.1  \\r\\n高密度脂蛋白 1.7 mmol/L 0.8-1.8  \\r\\n小结：未见明显异常。 \\r\\n小结医生：范倩 \\r\\n小结日期：2023.10.10 \\r\\n免疫 \\r\\n项目名称 检查结果 单位 参考范围 提示 \\r\\nCEA 8 ug/L 0-10  \\r\\nAFP 11 ug/L 0-20  \\r\\nCA19-9 28 kiu/L 0-37  \\r\\nFerritin 311 ug/L 0-322  \\r\\n甲肝抗体 阴性  阴性  \\r\\n丙肝抗体 阴性  阴性  \\r\\n乙肝表面抗原 阴性  阴性  \\r\\n乙肝表面抗体 阳性  阴性/阳性  \\r\\n乙肝 e 抗原 阴性  阴性  \\r\\n乙肝 e 抗体 阴性  阴性  \\r\\n乙肝核心抗体 阴性  阴性  \\r\\n小结：未见明显异常。 \\r\\n小结医生：黄海波 \\r\\n小结日期：2023.10.10 \\r\\n心电图 \\r\\n项目名称 检查结果 \\r\\n心律 窦性 \\r\\n心率 92 次/分 \\r\\nP — R 间期 正常范围 \\r\\nQ — T 间期 正常范围 \\r\\nQTC 正常范围 \\r\\n \\r\\n 第 6 页 共 7 页 \\r\\n电轴 未偏 \\r\\n心电图 窦性心律正常心电图 \\r\\n小结：未见明显异常。 \\r\\n小结医生：商映杰 \\r\\n小结日期：2023.10.10 \\r\\n \\r\\nB 超 \\r\\n项目名称 检查结果 \\r\\n肝 形态大小正常，实质回声略粗糙，考虑轻度脂肪肝可能 \\r\\n胆 胆囊壁毛糙，考虑慢性胆囊炎可能，胆管未见扩张 \\r\\n脾 轻度增大，回声均匀，建议进一步检查 \\r\\n胰 形态大小正常，回声均匀，未见明显异常 \\r\\n肾 右肾下极见一大小约 5mm 的无回声区，考虑小囊肿可能 \\r\\n前列腺 \\r\\n \\r\\n \\r\\n \\r\\n形态略增大，回声欠均匀，建议前列腺特异性抗原（PSA）检查 \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n小结：肝脏实质回声略粗糙，胆囊壁毛糙，考虑慢性胆囊炎可能，脾轻度增大。建议对肝脏和胆囊进行进\\r\\n一步检查，并监测脾脏情况。右肾小囊肿可能，前列腺形态略增大，建议 PSA检查。 \\r\\n小结医生：范伟 \\r\\n小结日期：2023.10.10 \\r\\n放射科 \\r\\n项目名称 检查结果 \\r\\n胸部正位片 胸廓对称，气管居中，两肺纹理清晰，余未见明显异常密度影，肺门、纵隔及\\r\\n心影大小形态未见明显异常，两隔面光整，两侧肋膈角锐利 \\r\\n  \\r\\n小结：未见明显异常。 \\r\\n小结医生：李莲英 \\r\\n小结日期：2023.10.10 \\r\\n \\r\\n总检结论                 总检医生：张海               总检日期:2023.10.10 \\r\\n综述：内科检查发现心率略快，伴有偶发早搏，皮肤弹性差，四肢末梢凉，建议进行心电图和血管功能评\\r\\n估。眼科检查显示视力下降，符合老视特征，建议配戴老花镜。口腔科检查发现轻微炎症和牙周问题，建\\r\\n议进一步治疗。B超检查提示轻度脂肪肝可能，胆囊壁毛糙，考虑慢性胆囊炎可能，脾轻度增大，右肾小\\r\\n囊肿可能，前列腺形态略增大，建议 PSA检查。 \\r\\n \\r\\n建议： \\r\\n针对心率问题，建议心电图检查及心脏科随访。 \\r\\n定期复查视力，并考虑配戴老花镜。 \\r\\n口腔科进一步检查和治疗牙周炎。 \\r\\n肝脏和胆囊需进一步检查，监测脾脏情况。 \\r\\n前列腺 PSA检查，以排除前列腺疾病。 \\r\\n保持健康的生活方式，定期体检。 \\r\\n【检查所见】 \\r\\n肝脏实质回声略粗糙，考虑轻度脂肪肝可能。胆囊壁毛糙，考虑慢性胆囊炎可能，胆管未见扩张。脾轻度\\r\\n增大，回声均匀，建议进一步检查。胰腺、双肾及前列腺未见明显异常。 \\r\\n \\r\\n \\r\\n 第 7 页 共 7 页 \\r\\n小结医生：李花花 \\r\\n小结日期：2023.10.10 \\r\\n报告说明：此报告作健康保健档案之用，如对检查结果有异议，请于一周内与体检办公室联系 \\r\\n联系电话：（010）888888888（预约） \\r\\n医院网址： https://nebula.itcast.cn  \\r\\n体检地址：北京市昌平区建材城西路金燕龙办公楼 4 楼 \\r\\n\"";
        System.out.println(StrUtil.format(HEALTH_PROMPT, pdf));

    }

    /**
     * 修改健康评估
     * 
     * @param healthAssessment 健康评估
     * @return 结果
     */
    @Override
    public int updateHealthAssessment(HealthAssessment healthAssessment)
    {
        return updateById(healthAssessment) ? 1 : 0;
    }

    /**
     * 批量删除健康评估
     * 
     * @param ids 需要删除的健康评估主键
     * @return 结果
     */
    @Override
    public int deleteHealthAssessmentByIds(Long[] ids)
    {
        return removeByIds(Arrays.asList(ids)) ? 1 : 0;
    }

    /**
     * 删除健康评估信息
     * 
     * @param id 健康评估主键
     * @return 结果
     */
    @Override
    public int deleteHealthAssessmentById(Long id)
    {
        return removeById(id) ? 1 : 0;
    }
}
